home *** CD-ROM | disk | FTP | other *** search
- #include "bbs.h"
-
- //extern long Time_limit;
- //extern int ChatFlag,HistorySelect;
- //extern int CHATF;
- //extern BYTE NOFKeys,OnlineEdit;
-
-
- extern ULONG SysopStatus;
- extern UBYTE NumHistItems,WhichHist;
- extern struct TempSysopInfo TSI;
- extern long DoHistory, LineHasChanged;
-
- extern int F6;
- static void Online_Edit(void)
- {
- long temp;
- int t=0;
- temp=User.Time_Limit;
- sprintf(GSTR1,"%sCommands/SysCmd/",Cmds->BBSLoc);
- sprintf(GSTR2,"ACCOUNTS %d",User.Slot_Number);
- if(!CustomCommand(GSTR1,GSTR2,1))
- {t=1;
- EditInfo(User.Slot_Number,&User,&User_keys);
- }
- if(User.Time_Limit!=temp) {
- if(User.Time_Limit>temp)
- User.Time_Total=User.Time_Limit;
-
- Time_limit=User.Time_Limit-User.Time_Used;
- }
-
- BytesADL=User.Daily_Bytes_Limit-User.Daily_Bytes_Dld;
- if(t)AEPutStr("\r\nCompleted Edit\r\n");
- }
-
-
- static void DoOnLineEdit(void)
- {
- OnlineEdit=1;
- if(Whence_The_Logon>=REMOTE_LOGON) {
- IO_Flags[IOFLAG_SER_IN]=0;
- IO_Flags[IOFLAG_SER_OUT]=0;
- }
- ConPutStr("\014");
- Online_Edit();
- (void)StatPrintUser(&User);
- if(Whence_The_Logon>=REMOTE_LOGON) {
- IO_Flags[IOFLAG_SER_IN]=!0;
- IO_Flags[IOFLAG_SER_OUT]=!0;
- }
- OnlineEdit=0;
- }
-
- static void StartASend(void)
- {
- int stat;
- char str[100];
-
- if(Whence_The_Logon>=REMOTE_LOGON) {
- IO_Flags[IOFLAG_SER_IN]=0;
- IO_Flags[IOFLAG_SER_OUT]=0;
- }
- strcpy(str,"");
- asl(str);
- /*
- ConPutStr("\nSend File, path/filename: ");
- stat=LineInput("",str,99,KEYBOARD_TIMEOUT);
- if(stat<0||str[0]=='\0')
- return;
- */
- if(Whence_The_Logon>=REMOTE_LOGON) {
- IO_Flags[IOFLAG_SER_IN]=!0;
- IO_Flags[IOFLAG_SER_OUT]=!0;
- }
- MenuSend(str);
- }
-
-
- static void StartCapture(void)
- {
- extern FILE *CaptureFP;
- int stat;
- char str[100];
-
- if(CaptureFP) {
- fclose(CaptureFP);
- CaptureFP=NULL;
- ConPutStr("\nCapture closed!\n");
- } else {
- Redo:
- ConPutStr("\nOpen capture, path/filename: ");
- stat=LineInput("",str,99,KEYBOARD_TIMEOUT);
- if(stat<0||str[0]=='\0') return;
- CaptureFP=fopen(str,"w");
- if(!CaptureFP) {
- ConPutStr("ERROR: can't open ");
- ConPutStr(str);
- ConPutStr(" for writing! Try another!\n");
- goto Redo;
- } else {
- ConPutStr("ACapture opened!\n");
- }
- }
- }
-
-
- int CheckCSI(void)
- {
- int c,ch;
- F6=0;
- ch=GetConKey(1L);
- if((!DoHistory)||NumHistItems==0)
- {
- if((ch>='A')&&(ch<'E')&&!RawArrow) { return(FALSE); }
- }
-
- if(ch=='A')
- {
- if(RawArrow) return(UPARROW);
- HistorySelect--;
- if(HistorySelect<0)
- {
- if(NumHistItems==MAXHIST)
- {
- HistorySelect=MAXHIST-1;
- }
- else
- {
- HistorySelect=0;
- if(LineHasChanged)
- {
- LineHasChanged=0;
- return(HISTORY);
- }
- return(FAILURE);
- }
- }
- return(HISTORY);
- }
-
- if(ch=='B')
- {
- if(RawArrow) return(DOWNARROW);
- HistorySelect++;
- if(NumHistItems!=MAXHIST)
- {
- if(HistorySelect>=WhichHist)
- {
- HistorySelect--;
- if(LineHasChanged)
- {
- LineHasChanged=0;
- return(HISTORY);
- }
- return(FAILURE);
- }
- }
- else
- {
- if(HistorySelect>=MAXHIST)
- {
- HistorySelect=0;
- }
- }
- return(HISTORY);
- }
-
- if(ch=='C'||ch=='D')
- {
- if(RawArrow)
- {
- if(ch=='C')return(LEFTARROW);
- return(RIGHTARROW);
- }
- return(FALSE);
- }
-
- CHATF=0;
-
- c=' ';
-
- if(ch=='1') {
- c=GetConKey(1L);
- if(c<='9'&&c>='0') {
- ch=c;
- do {
- c=GetConKey(1L);
- if(c<0) return(c);
- } while(c!='~'&&c!='v');
- /* 11w chg */
- /* end 11w */
- switch(ch) {
- case '5':
- if(SysopStatus) {
- User.Sec_Status=TSI.AccessLevel;
- User.Sec_Board=TSI.RatioType;
- User.Sec_Library=TSI.Ratio;
- User.Time_Total=TSI.TimeTotal;
- memcpy(User.Conference_Access,TSI.ConfAc,10);
- (void)StatPrintUser(&User);
- } else {
- TSI.AccessLevel=User.Sec_Status;
- TSI.RatioType=User.Sec_Board;
- TSI.Ratio=User.Sec_Library;
- TSI.TimeTotal=User.Time_Total;
- memcpy(TSI.ConfAc,User.Conference_Access,10);
- F6=1;
- DoOnLineEdit(); ConvertAccess();
- }
- SysopStatus=(~SysopStatus);
- ConPutStr("\r\nSysop Access ");
- ConPutStr((SysopStatus?"Granted\r\n":"Removed\r\n"));
- break;
- case '3':
- StartASend();
- break;
- }
- return(0);
- }
- }
-
- while(c!='~'&&c!='v') {
- c=GetConKey(1L);
- if(c<0) return(c);
- }
- if(c=='v')
- {
- if(ch=='0')
- {
-
- //GETCLIP=CheckForClip();
- }
- }
- else {
- if(!NOFKeys) {
- switch(ch) {
- case '?': /* Help - ToggleStat */
- ToggleStatusDisplay();
- break;
- case '9': /* F10 - FORCE LOGOFF */
- DropDTR();
- return(NO_CARRIER);
- break;
- case '8': /* F9 - SER_OUT */
- if(Whence_The_Logon==REMOTE_LOGON)
- IO_Flags[IOFLAG_SER_OUT]=!IO_Flags[IOFLAG_SER_OUT];
- break;
- case '7': /* F8 - SER_IN */
- if(Whence_The_Logon==REMOTE_LOGON)
- IO_Flags[IOFLAG_SER_IN]=!IO_Flags[IOFLAG_SER_IN];
- break;
- case '6': /* F7 - Toggle Chat bit */
- if(SySChat==1) SySChat=0;
- else SySChat=1;
- StatChatFlag();
- break;
- case '5': /* F6 - Account editing */
- F6=1;
- DoOnLineEdit();
- CheckUserOnLine(&User,0); ConvertAccess();F6=0;
- break;
- // case '4': /* F5 - Local Shell */
- // break;
- case '3':
- if(Whence_The_Logon>=REMOTE_LOGON) {
- IO_Flags[IOFLAG_SER_IN]=0;
- IO_Flags[IOFLAG_SER_OUT]=0;
- }
- StartCapture();
- if(Whence_The_Logon>=REMOTE_LOGON) {
- IO_Flags[IOFLAG_SER_IN]=!0;
- IO_Flags[IOFLAG_SER_OUT]=!0;
- }
- break;
- case '2': /* F3 - DECREASE TIME LIMIT */
- Time_limit-=600L;
- User.Time_Total-=600L;
- break;
- case '1': /* F2 - INCREASE TIME LIMIT */
- Time_limit+=600L;
- User.Time_Total+=600L;
- break;
- case '0': /* F1 - CHAT TOGGLE */
- CHATF=1;
- ChatFlag=!ChatFlag;
- if(ChatFlag==0) return(EXITCHAT);
- SetEnvStat(ENV_CHAT);
- if(Chat()==NO_CARRIER) return(NO_CARRIER);
- return(1);
- break;
- }
- }
- }
-
- return(0);
- }
-